package com.yeren.inerator;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IneratorDemo2 {

	/**
	 * 集合迭代器的使用
	 */
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("one");
		list.add("#");
		list.add("two");
		list.add("#");
		list.add("three");
		list.add("#");
		list.add("four");
		/**
		 * java.util.Iterator 迭代器是专门为while循环设计的
		 */
		Iterator<String> it = list.iterator();
		while (it.hasNext()) {
			/**
			 * next方法获取集合中下一个元素 与get方法一样，存放的时候以Object存取的时候也是以Object返回的，所以要改造
			 */
			String element = (String) it.next();
			/**
			 * 使用迭代器在遍历集合元素过程中是可以删除集合中元素的，使用的时迭代器的remove方法 删除集合中所有#
			 */
			if ("#".equals(element)) {
				// 将上面通过next()方法获取的元素从集合中删除
				it.remove();
				/**
				 * 迭代器在迭代过程中，不能通过使用集合定义的删除方法去删除集合元素，一定要使用迭代器的删除方法，否则迭代器过程中会产生异常
				 */
			}
			System.out.print(element);
		}

		System.out.print(list);
	}

}
